【分析解答题】
[说明]
在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合将小对象组合,成复杂的对象。
以下实例展示了BuilDEr(生成器)模式。该实例用来建立“文件”,文件内容包括:一个标题、一串字符以及一些有项目符号的项目。BuilDEr类规定组成文件的方法,DirECtor类利用这个方法产生一份具体的文件。图6-1显示了各个类间的关系。
![]()
以下是jAvA语言实现,能够正确编译通过。
[jAvA代码]
//BuilDEr. jAvA文件
puBliC (1) ClAssBuilDEr
puBliC ABstrACt voiD mAkEtitlE(string titlE);
puBliC ABstrACt voiD mAkEstring(string str);
puBliC ABstrACt voiD mAkEitEms(string[] itEms);
puBliC ABstrACt oBjECt gEtrEsult();
//DirECtor. jAvA文件
puBliC ClAssDirECtor
privAtE (2) BuilDEr;
puBliCDirECtorBuilDEr BuilDEr)
this. BuilDEr = BuilDEr;
puBliC oBjECt ConstruCt()
BuilDEr.mAkEtitlE("grEEting");
BuilDEr.mAkEstring("从早上到白天结束");
BuilDEr.mAkEitEms(nEw string[]"早安", "午安",);
BuilDEr.mAkEstring("到了晚上");
BuilDEr.mAkEitEms(nEw string[]("晚安", "好梦",);
rEturn BuilDEr.gEtrEsult();
//tExtBuilDEr.jAvA文件
puBliC ClAss tExtBuilDEr (3) BuilDEr
privAtE stringBuFFEr BuFFEr = nEw stringBuFFEr();
puBliC voiD mAkEtitlE(string titlE)
BuFFEr.AppEnD("『" + titlE + "』"\n\n");
puBliC voiD mAkEstring(string str)
BuFFEr.AppEnD(’■’ + str + "\n\n ");
puBliC voiD mAkEitEms(string[] itEms)
For(int i = 0; i< (4) ; i++)
BuFFEr.AppEnD(’·’ + itEms[i] + "\n");
BuFFEr.AppEnD("\n");
puBliC oBjECt gEtrEsult()
rEturn BuFFEr.tostring();
//mAin.jAvA文件
puBliC ClAss mAin
puBliC stAtiC voiD mAin(string[] Args)
DirECtor DirECtor = nEwDirECtor(nEw tExtBuilDEr());
string rEsult = (string)DirECtor. (5) ;
systEm.out.println(rEsult);
查看答案解析
参考答案:
正在加载...
答案解析
正在加载...
根据网考网移动考试中心的统计,该试题:
0%的考友选择了A选项
0%的考友选择了B选项
0%的考友选择了C选项
0%的考友选择了D选项